import { CoolCommException } from "@cool-midway/core";
import { Rule, RuleType } from "@midwayjs/validate";
import { MediaType } from "../entity/info";

export class AddMediaDTO {
  @Rule(RuleType.string().required().uri().error(new CoolCommException('资源地址无效')))
  url: string;

  @Rule(RuleType.string().optional().allow('').uri())
  thumb?: string;

  @Rule(RuleType.string().valid(...Object.values(MediaType)).required().error(new CoolCommException('媒体类型不合法')))
  type: MediaType;

  @Rule(RuleType.string().optional().allow(''))
  name?: string;

  @Rule(RuleType.number().optional())
  size?: number;

  @Rule(RuleType.number().optional())
  duration?: number;
}

export class ListMediaDTO {
  @Rule(RuleType.string().optional().valid(...Object.values(MediaType)))
  type?: MediaType;
}

export class ListByProviderIdDTO {
  @Rule(RuleType.number().required().error(new CoolCommException('服务人员ID不能为空')))
  providerId: number;

  @Rule(RuleType.string().optional().valid(...Object.values(MediaType)))
  type?: MediaType;
}
